/*
 * EntechSubsystem.hpp
 *
 *  Created on: Feb 4, 2013
 *      Author: N500432
 */

#ifndef _ENTECH_SUBSYSTEM_H
#define _ENTECH_SUBSYSTEM_H

#include <string>

class EntechSubsystem
{
public:
	EntechSubsystem(const std::string name="unknown");
	virtual ~EntechSubsystem();

	// Subsystem functions
    virtual void DoRobotInit(void);
    virtual void DoDisabledInit(void);
    virtual void DoDisabled(void);
    virtual void DoAutonomousInit(void);
    virtual void DoAutonomous(void);
    virtual void DoTeleopInit(void);
    virtual void DoTeleop(void);
    virtual void DoTestInit(void);
    virtual void DoTest(void);

    std::string GetName(void);
    virtual int GetTestNumber(void);
    virtual void SetTestNumber(int number);
    virtual void TestModeEnabled(bool on);
    
protected:
	int m_testNumber;
	bool m_testEnabled;

private:
	std::string m_name;
};
#endif
